package com.mjf.kxml.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mjf.kxml.util.CKHttpSendUtil;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * desc  客商接口入参
 * </p>
 *
 * @author chenshoumeng
 * @date 2025/6/4 11:02
 */
@Data
@TableName("u8cubasdoc")
public class Merchant {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 公司名称，调用接口公司名称，公司全称 示例：中车长春轨道客车股份有限公司 */
    @TableField("ccar_gsname")
    private String ccarGsname;

    /** 公司编码，调用接口公司编码 示例：100200012001 */
    @TableField("ccar_gscode")
    private String ccarGscode;

    /** 负责人姓名，负责人姓名 示例：张三 */
    @TableField("ccar_principalname")
    private String ccarPrincipalname;

    /** 负责人编码，负责人档案号 示例：013200055999 */
    @TableField("ccar_principalcode")
    private String ccarPrincipalcode;

    /** 数据状态，数据范围：1、0。1：可用，0：不可用 */
    @TableField("ccar_dataenable")
    private String ccarDataenable;

    /** 本方单位编码，为本方单位编码。境内：为18位全国统一社会信用代码；境外：注册登记书号码 示例：91510100MAD5CWLL3M */
    @TableField("number")
    private String number;

    /** 本方单位名称，境内：统一社会信用代码证书机构名；境外：注册名称 示例：中车长春轨道客车股份有限公司 */
    @TableField("name")
    private String name;

    /** 客商名称 示例：中车长春轨道客车股份有限公司 */
    @TableField("ccar_vendorname")
    private String ccarVendorname;

    /** 法定代表人，企业法人 示例：张三 */
    @TableField("ccar_legalperson")
    private String ccarLegalperson;

    /** 客商统一社会信用代码，境内：18位代码；境外：X+17个0，不可用科学计数法 示例：91510100MAD5CWLL3M */
    @TableField("ccar_vendorcode")
    private String ccarVendorcode;

    /** 注册资本，企业注册资本，数值格式，整数或保留至小数点后两位 示例：124325534.66 */
    @TableField("ccar_regcapital")
    private String ccarRegcapital;

    /** 成立日期，格式为YYYY-MM-DD 示例：2020-01-02 */
    @TableField("ccar_setdate")
    private String ccarSetdate;

    /** 企业地址，境内：GB2260六位代码；境外：GB/T2659中文简称 示例：110000 */
    @TableField("ccar_vendoraddress")
    private String ccarVendoraddress;

    /** 客商所在国地区，表示银行账户所属地区名称；境内：默认中国；境外：GB/T2659中文简称 示例：中国 */
    @TableField("ccar_country")
    private String ccarCountry;

    /** 集团内外部标识，必填，应为T00或T01 示例：T00 */
    @TableField("ccar_subcompany")
    private String ccarSubcompany;

    /** 客商属性，必填，应为K01-K08 示例：K08 */
    @TableField("ccar_vendortype")
    private String ccarVendortype;

    /** 所属行业，国民经济行业分类代码（GB/T4754）大类代码 示例：20 */
    @TableField("ccar_vendorcategory")
    private String ccarVendorcategory;

    /** 数据日期，格式为YYYY-MM-DD，与报送截止一致；不允许为9999-12-31，无特殊字符 示例：2025-05-23 */
    @TableField("ccar_dayidx")
    private String ccarDayidx;

    /** 备用字段 示例：<ccar_standby1></ccar_standby1> */
    private String ccarStandby1;

    /** 备用字段 示例：<ccar_standby2></ccar_standby2> */
    private String ccarStandby2;

    /** 备用字段 示例：<ccar_standby3></ccar_standby3> */
    private String ccarStandby3;

    /** 备用字段 示例：<ccar_standby4></ccar_standby4> */
    private String ccarStandby4;

    /** 备用字段 示例：<ccar_standby5></ccar_standby5> */
    private String ccarStandby5;

    /** 备用字段 示例：<ccar_standby6></ccar_standby6> */
    private String ccarStandby6;

    /** 备用字段 示例：<ccar_standby7></ccar_standby7> */
    private String ccarStandby7;

    /** 备用字段 示例：<ccar_standby8></ccar_standby8> */
    private String ccarStandby8;

    /** 备用字段 示例：<ccar_standby9></ccar_standby9> */
    private String ccarStandby9;

    /** 备用字段 示例：<ccar_standby10></ccar_standby10> */
    private String ccarStandby10;

    // U8客商编码
    @TableField("c_ven_code")
    private String cVenCode;
    // 数据获取时间
    private LocalDateTime times;
    // 推送标识 0-未推送 1-推送成功 2-推送失败
    private String pullsk;
    // 推送数据返回结果
    private String pullskoutstr;
    // 推送时间
    private LocalDateTime pulltime;



    /**
     * 构建对象XML
     * @param onlyTag  接口调用唯一标识 随机不重复即可
     * @param vendors  推送数据集合
     * @return
     */
    public static String buildObjectXml(String onlyTag, List<Merchant> vendors) {
        StringBuilder sb = new StringBuilder();
        sb.append("<Object>\n")
            .append("    <ccar_onlytag>").append(onlyTag).append("</ccar_onlytag>\n")
            .append("    <vendor_lists>\n");

        for (Merchant vendor : vendors) {
            sb.append("        <vendor>\n")
                .append("            <ccar_gsname>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarGsname())).append("</ccar_gsname>\n")
                .append("            <ccar_gscode>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarGscode())).append("</ccar_gscode>\n")
                .append("            <ccar_principalname>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarPrincipalname())).append("</ccar_principalname>\n")
                .append("            <ccar_principalcode>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarPrincipalcode())).append("</ccar_principalcode>\n")
                .append("            <ccar_dataenable>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarDataenable())).append("</ccar_dataenable>\n")
                .append("            <number>").append(CKHttpSendUtil.jurEmpty(vendor.getNumber())).append("</number>\n")
                .append("            <name>").append(CKHttpSendUtil.jurEmpty(vendor.getName())).append("</name>\n")
                .append("            <ccar_vendorcode>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarVendorcode())).append("</ccar_vendorcode>\n")
                .append("            <ccar_vendorname>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarVendorname())).append("</ccar_vendorname>\n")
                .append("            <ccar_legalperson>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarLegalperson())).append("</ccar_legalperson>\n")
                .append("            <ccar_regcapital>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarRegcapital())).append("</ccar_regcapital>\n")
                .append("            <ccar_setdate>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarSetdate())).append("</ccar_setdate>\n")
                .append("            <ccar_vendoraddress>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarVendoraddress())).append("</ccar_vendoraddress>\n")
                .append("            <ccar_country>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarCountry())).append("</ccar_country>\n")
                .append("            <ccar_subcompany>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarSubcompany())).append("</ccar_subcompany>\n")
                .append("            <ccar_vendortype>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarVendortype())).append("</ccar_vendortype>\n")
                .append("            <ccar_vendorcategory>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarVendorcategory())).append("</ccar_vendorcategory>\n")
                .append("            <ccar_dayidx>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarDayidx())).append("</ccar_dayidx>\n")
                .append("            <ccar_standby1>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby1())).append("</ccar_standby1>\n")
                .append("            <ccar_standby2>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby2())).append("</ccar_standby2>\n")
                .append("            <ccar_standby3>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby3())).append("</ccar_standby3>\n")
                .append("            <ccar_standby4>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby4())).append("</ccar_standby4>\n")
                .append("            <ccar_standby5>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby5())).append("</ccar_standby5>\n")
                .append("            <ccar_standby6>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby6())).append("</ccar_standby6>\n")
                .append("            <ccar_standby7>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby7())).append("</ccar_standby7>\n")
                .append("            <ccar_standby8>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby8())).append("</ccar_standby8>\n")
                .append("            <ccar_standby9>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby9())).append("</ccar_standby9>\n")
                .append("            <ccar_standby10>").append(CKHttpSendUtil.jurEmpty(vendor.getCcarStandby10())).append("</ccar_standby10>\n")
                .append("        </vendor>\n");
        }

        sb.append("    </vendor_lists>\n")
            .append("</Object>");
        return sb.toString();
    }



}
